#!/usr/bin/env node

// node cli 应用入口文件必须有这样的文件头
// 如果是 linux 或者 macos 系统下还要修改此文件的读写权限为755
// 具体就是通过 chmod 755 cli.js 实现修改

// 脚手架的工作过程：
// 1. 通过命令行交互询问用户问题 inquirer
// 2. 根据用户回答问题生成文件

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer');
const ejs = require('ejs');

inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Project name'
    }
]).then(answers => {
    // console.log(answers)
    // 2. 根据用户回答问题生成文件

    // 模板目录
    const tmplDir = path.join(__dirname, 'templates');
    // console.log(tmplDir)
    // 目标目录
    const destDir = process.cwd()
    // console.log(destDir)
    fs.readdir(tmplDir, (err, files) => {
        files.forEach(file => {
            // 通过模板引擎渲染文件
            ejs.renderFile(path.join(tmplDir, file), answers, (err, result) => {
                if (err) throw err
                // 将结果写入目标文件路径
                fs.writeFileSync(path.join(destDir, file), result)
            })

        })
    })
})